# !/usr/bin python3
import re

import yaml
from get_project_path import project_path


def load_yaml_file(filepath: object) -> object:
    with open(file=f'{project_path}{filepath}', mode='r', encoding='UTF-8') as f:
        content = yaml.load(f, Loader=yaml.FullLoader)
        return content


def write_yaml(filepath, content):
    with open(file=f'{project_path}{filepath}', mode='w', encoding='UTF-8') as f:
        yaml.dump(content, f, Dumper=yaml.Dumper)


def replace_value_in_json(json_data, new_value):
    """
    替换JSON字典中'value'字段的值为new_value，如果'value'字段中包含'{{ domain_login_text }}'字符串。
    :param json_data: 包含原始JSON数据的字典。
    :param new_value: 新的值，用于替换'value'字段中的'{{ domain_login_text }}'。
    :return: 返回一个新的字典，其中'value'字段（如果包含'{{ domain_login_text }}'）已被替换。
    """
    # 使用浅拷贝来保持原始字典不变
    new_json_data = json_data.copy()
    # 确保json_data中包含'value'字段，并且它是一个字符串
    if 'value' in new_json_data and isinstance(new_json_data['value'], str):
        # 替换'value'字段中的'{{ domain_login_text }}'字符串
        new_json_data['value'] = new_json_data['value'].replace('{{ domain_login_text }}', str(new_value))
    return new_json_data

def extract_total_count(input_str):
    # 使用正则表达式匹配“共X条数据”的模式
    # \d+ 匹配一个或多个数字
    # \s* 匹配任意数量的空白字符
    # (共\d+条数据) 是一个捕获组，用于捕获我们感兴趣的部分
    match = re.search(r'\s*(共\d+条数据)', input_str)
    if match:
        # 使用group(1)来获取第一个捕获组的内容，即“共X条数据”
        # 然后我们使用字符串切片和int()函数来提取并转换数字X
        total_count = int(match.group(1).replace('共', '').replace('条数据', ''))
        return total_count
    else:
        # 如果没有找到匹配项，则返回None或者抛出异常（根据需要）
        return None

if __name__ == '__main__':
    print()
